package com.starry.module.system.api.user.domain.qo;

import com.starry.core.common.domain.qo.PageQo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.Set;

/**
 * 系统用户SysUserPageQo
 *
 * @author xiaoke
 */
@Schema(description = "SysUserPageQo")
@EqualsAndHashCode(callSuper = true)
@Data
public class SysUserPageQo extends PageQo {
    /**
     * 主键
     */
    @Schema(description = "主键")
    private Long id;

    /**
     * 机构ID
     */
    @Schema(description = "机构ID")
    private Long deptId;
    /**
     * 主岗位
     */
    @Schema(description = "主岗位")
    private Long postId;
    /**
     * 密码
     */
    @Schema(description = "密码")
    private String password;
    /**
     * 用户名
     */
    @Schema(description = "用户名")
    private String username;
    /**
     * 昵称
     */
    @Schema(description = "昵称")
    private String name;
    /**
     * 用户头像
     */
    @Schema(description = "用户头像")
    private String avatar;
    /**
     * 邮箱
     */
    @Schema(description = "邮箱")
    private String email;
    /**
     * 手机号码
     */
    @Schema(description = "手机号码")
    private String phone;
    /**
     * 生日
     */
    @Schema(description = "生日")
    private Date birthday;
    /**
     * 性别(1 男 0 女)
     */
    @Schema(description = "性别(1 男 0 女)")
    private Integer sex;
    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;
    /**
     * 状态(1 正常 0 禁用)
     */
    @Schema(description = "状态(1 正常 0 禁用)")
    private Integer status;
    /**
     * 最后登录时间
     */
    @Schema(description = "最后登录时间")
    private LocalDateTime loginDate;
    /**
     * 岗位id
     */
    @Schema(description = "岗位id")
    private Set<Long> postIdList;
    /**
     * 角色id
     */
    @Schema(description = "角色id")
    private Set<Long> roleIdList;
    /**
     * ip城市
     */
    @Schema(description = "ip城市")
    private String ipCity;
    /**
     * 最后登录IP
     */
    @Schema(description = "最后登录IP")
    private String loginIp;
    /**
     * 创建者id
     */
    @Schema(description = "创建者id")
    private Long createId;
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private LocalDateTime createTime;
    /**
     * 更新者Id
     */
    @Schema(description = "更新者Id")
    private Long updateId;
    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private LocalDateTime updateTime;
    /**
     * 更新者用户名
     */
    @Schema(description = "更新者用户名")
    private String updateName;
    /**
     * 创建者用户名
     */
    @Schema(description = "创建者用户名")
    private String createName;
}

